package com.hw.common.framework.plugin.json;

public class BufferErrorListener implements JSONErrorListener
{
    
    protected StringBuffer buffer;
    private String         input;
    
    public BufferErrorListener(StringBuffer buffer)
    {
        this.buffer = buffer;
    }
    
    public BufferErrorListener()
    {
        this(new StringBuffer());
    }
    
    public void start(String input)
    {
        this.input = input;
        buffer.setLength(0);
    }
    
    public void error(String type, int col)
    {
        buffer.append("expected ");
        buffer.append(type);
        buffer.append(" at column ");
        buffer.append(col);
        buffer.append("\n");
        buffer.append(input);
        buffer.append("\n");
        indent(col - 1, buffer);
        buffer.append("^");
    }
    
    private void indent(int n, StringBuffer ret)
    {
        for (int i = 0; i < n; ++i)
        {
            ret.append(' ');
        }
    }
    
    public void end()
    {
    }
}
